<template>
  <div></div>
</template>
<script lang="ts">
import { defineComponent, unref } from "vue";
import { useRouter } from "vue-router";
export default defineComponent({
  // 该组件用于路由重定向，只局部刷新当前显示的组件，而不刷新整个页面，即不会出现加载动画
  name: "Redirect",
  setup() {
    /**
     * @param currentRoute 包含当前路由信息的对象
     * @param replace  跳转路由的方法
     */
    const { currentRoute, replace } = useRouter();
    /**
     * @param params 存放动态路由参数的对象
     * @param query  以键值对方式存放查询字符串的对象
     */
    const { params, query } = unref(currentRoute);
    /**
     * @param path 当前路由的路径
     */
    const { path } = params;
    // 如果当前路由对应路径是一个数组，则将该数组以/作为分隔符拆分成字符串
    // 如果不是一个数组，则不做任何处理
    const _path = Array.isArray(path) ? path.join("/") : path;
    // 重定向路由并传入query参数
    replace({
      path: "/" + _path,
      query
    });

    return {};
  }
});
</script>
